package org.example.lethear.dto.report;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Size;
import java.util.List;

/**
 * 举报创建请求DTO
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ReportCreateRequest {
    
    @NotNull(message = "举报目标类型不能为空")
    @Min(value = 1, message = "目标类型无效")
    @Max(value = 4, message = "目标类型无效")
    private Integer targetType; // 1-帖子，2-评论，3-用户，4-悄悄话
    
    @NotNull(message = "举报目标ID不能为空")
    @Min(value = 1, message = "目标ID无效")
    private Long targetId;
    
    @NotNull(message = "举报原因类型不能为空")
    @Min(value = 1, message = "原因类型无效")
    @Max(value = 5, message = "原因类型无效")
    private Integer reasonType; // 1-垃圾信息，2-违法违规，3-涉黄涉暴，4-恶意骚扰，5-其他
    
    @Size(max = 500, message = "详细描述不能超过500个字符")
    private String reasonDetail; // 详细原因描述
    
    private List<String> evidenceUrls; // 证据URL列表
} 